var gulp = require('gulp');
var sass = require('gulp-sass');
var connect = require('gulp-connect');
var concat = require('gulp-concat');
var uglify = require('gulp-uglify');
var rename = require('gulp-rename');
var minifyCss = require('gulp-minify-css');
var server = require('gulp-server-livereload');

// 合并压缩css
gulp.task('style',function(){
	return gulp.src('app/css/**/*.css')
		.pipe(concat('style.css'))
		.pipe(gulp.dest('dist/css'))
		.pipe(minifyCss())
		.pipe(rename('style.min.css'))
		.pipe(gulp.dest('dist/css'))
})

// 合并压缩js 库
gulp.task('lib',function(){
	return gulp.src('app/lib/**/*.js')
		.pipe(concat('vendor.js'))
		.pipe(gulp.dest('dist/js'))
		.pipe(uglify())
		.pipe(rename('vendor.min.js'))
		.pipe(gulp.dest('dist/js'))
})

// 合并压缩项目 js 
gulp.task('script',function(){
	return gulp.src('app/js/**/*.js')
		.pipe(concat('app.js'))
		.pipe(gulp.dest('dist/js'))
		.pipe(uglify())
		.pipe(rename('app.min.js'))
		.pipe(gulp.dest('dist/js'))
})

// 极限压缩 js ，将所有的js全部压缩到一个文件
gulp.task('script-limit',['lib','script'],function(){
	return gulp.src(['dist/js/vendor.min.js','dist/js/vendor.min.js'])
		.pipe(concat('all.min.js'))
		.pipe(uglify())
		.pipe(gulp.dest('dist/js'))
})

// 复制 html文件
gulp.task('html',function(){
	return gulp.src('app/*.html').pipe(gulp.dest('dist'));
})


// 监视js和css的改变以便刷新服务器
gulp.task('watch',function(){
	gulp.watch('app/**/*',[]).pipe(connect.reload());
})


// 编译服务器
gulp.task('build',['style','lib','script'],function(){
	console.log('编译成功');
})

// 开发服务器
gulp.task('server', function(){
	gulp.src('app/')
		.pipe(server({
			host: '192.168.100.103',
			port: 8000,
			livereload: true,
			// directoryListing: true,
			defaultFile: 'index.html',
			open: true
		}))
})

//编译测试服务器
gulp.task('build-server', function(){
	gulp.src('dist/')
		.pipe(server({
			livereload: true,
			directoryListing: true,
			defaultFile: 'index.html',
			open: true
		}))
})
